package javaweb;

import org.junit.Test;
import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * TCP/IP协议:高效的四层体系结构,物理链路层、IP层、传输层、应用层
 * 网络通信协议：对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准
 *             1.传输控制协议(TCP):使用前建立连接("三次握手",点对点通信),然后继续大量数据的传输,传输完毕释放连接,是可靠的,低效率的
 *             2.用户数据报协议(UDP):不需要建立连接,每个数据最大64K,无需释放资源,是不可靠的,开销小,但是速度快
 * 网络通信要素：IP+端口号
 * IPv4和IPv6：万维网和局域网(192.168.0-255.0-255)
 * 端口号：识别计算机上的正在运行的进程(0-65535)
 * 端口分类：1.公认端口(0-1023):被预定义的服务通信占用,eg：HTTP占用80;FTP占用21;Telnet占用23
 *          2.注册端口(1024-49151):分配给用户进程、应用程序,eg:MySQL占用3306,Oracle占用1521,Tomcat占用8080
 *          3.动态、私有端口(49152-65535)
 * 【重点】端口号+IP地址=Socket(网络套接字)
 */
public class InetAddressTest {
    @Test
    public void test() throws UnknownHostException {
        //实例化 InetAddress(String Host)
        InetAddress address = InetAddress.getByName("192.168.10.14");
        //读取网站的IPv4地址
        InetAddress inetAddress = InetAddress.getByName("www.baidu.com");
        System.out.println(inetAddress);
        //读取本机的IP地址 getLocalHost()
        InetAddress.getLocalHost();
        //读取本机的地址getAddress()
        address.getAddress();
        //读取本机的域名getHostAddress()
        address.getHostAddress();

    }
}
